package com.my.code.phaser;

import java.util.concurrent.Phaser;

/**
 * 比赛阶段器
 */
public class GamePhaser extends Phaser {

    /**
     * 当一个阶段的所有线程都到达时 , 执行该方法, 此时 phase自动加1
     *
     * @param phase             阶段
     * @param registeredParties 注册的线程数
     * @return true 表示该Phaser结束
     */
    @Override
    protected boolean onAdvance(int phase, int registeredParties) {
        switch (phase) {
            case 0:
                System.out.println("预赛完成");
                return false;
            case 1:
                System.out.println("初赛完成");
                return false;
            case 2:
                System.out.println("决赛完成");
                return false;
            default:
                return true;
        }
    }
}
